package edu.ensabap.matricula.action;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.opensymphony.xwork2.ActionSupport;

import edu.ensabap.matricula.bean.EdgarDTO;
import edu.ensabap.matricula.constants.Globales;
import edu.ensabap.matricula.service.EdgarService;

public class EdgarAction  extends ActionSupport{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	
//	importar el service edgar
	@Autowired
	private EdgarService edgarService;
	
//	variables creadas
	private List<EdgarDTO> listaEdgar;
	
//	instancia para listar
	private EdgarDTO edgarDTO;
	
//	instancia para modificar
	private EdgarDTO edgarDTOModificar;
	
//	instancia para eliminar
	private EdgarDTO edgarDTOEliminar;
	
//	instancia para insertar
	private EdgarDTO edgarDTOInsertar;
	
	
	private String mensajeGEneral;
	
	
//	PARA LA PAGINACION
	private int cantidadFilas;
	private int paginaMostrar;
	private int cantidadPaginas;
	
	
	
	
//	CREAR UN CONSTRUCTOR QUE IUNICIALIZE LAS VARIABLES
	public EdgarAction(){
		
		edgarDTO = new EdgarDTO();
		edgarDTOInsertar = new EdgarDTO();
		edgarDTOEliminar = new EdgarDTO();
		edgarDTOModificar = new EdgarDTO();
		
		cantidadFilas = Globales.NUMERO_FILAS;
		paginaMostrar=1;
		listaEdgar = new ArrayList<EdgarDTO>();
	}
	
	
	
	
	public String dialogRegistrar(){
		return SUCCESS;
	}
	
	
	
	
//	abre la primera ventana
	public String abreIndexEdgar(){
		cargaInterfaz();	
//		paginacion();
		return SUCCESS;
	}

	
//	metodo carga lista
	public void cargaInterfaz(){
//		EdgarDTO edgar= new EdgarDTO();
//		listaEdgar=edgarService.listarEdgar(edgar);
		listaEdgar=edgarService.listarEdgar(edgarDTO, paginaMostrar, cantidadFilas);
		paginacion();
	}
	public void paginacion(){
		cantidadPaginas=edgarService.numeroPaginas(edgarDTO, cantidadFilas);
	}

//metodo que inserta
	public String registrarE(){
//		valido si los datos no son vacios
		System.out.println("EDGAR A INSERTAR TIENE EL SIGUIENTE CODIGO :"+edgarDTOInsertar.getCodigo()+"   ////////");
		if (edgarDTOInsertar.getCodigo().trim().equals("")){
			mensajeGEneral="NO SE AH INSERTADO NINGUN EDGAR";
			addActionError(mensajeGEneral);
		}else{
			int resultado=-1;
			
			resultado = edgarService.insertarEdgar(edgarDTOInsertar);
			if(resultado>0){
				mensajeGEneral="El alumno se ingreso correctamente";
				addActionMessage(mensajeGEneral);
			}else{
				mensajeGEneral="No se inserto ningun registro";
				addActionError(mensajeGEneral);
			}
			
			edgarDTOInsertar.setCodigo("");

			//cargar la interfaz
			cargaInterfaz();
		}
		
		return SUCCESS;
	}

	//metodo que busca
	
	public String buscarEdgar(){
			
		//cargar la interfaz
		
		cargaInterfaz();
		
		return SUCCESS;
	}
	
	
//	metodo que eliminar
	public String eliminarEdgar(){
		int resultado=-1;
		resultado = edgarService.eliminarEdgar(edgarDTOEliminar);
		if(resultado>0){
			mensajeGEneral="El se elimino correctamente";
			addActionMessage(mensajeGEneral);
		}else{
			mensajeGEneral="No se elimino ningun edgar";
			addActionError(mensajeGEneral);
		}
		
		//cargar la interfaz
		cargaInterfaz();
		
		return SUCCESS;
	}

	
//	MODIFICAR
	
//	abre la ventana modificar
	
	public String abrirModificarEdgar(){
		
		System.out.println("entro al action de editar");
		edgarDTOModificar = edgarService.obtenerEdgarXID(edgarDTOModificar);
		
		return SUCCESS;
	}

//	modifica Edgar
	public String modificarEdgar(){
		System.out.println("ingreso al action modificar");
		
		System.out.println("el nombre es  :"+edgarDTOModificar.getId());
		System.out.println("el nombre es  :"+edgarDTOModificar.getNombre());
		System.out.println("el nombre es  :"+edgarDTOModificar.getCodigo());
		
		int resultado=-1;
		resultado = edgarService.modificarEdgar(edgarDTOModificar);
		if(resultado>0){
			mensajeGEneral="Se modifico correctamente";
			addActionMessage(mensajeGEneral);
		}else{
			mensajeGEneral="No se pudo moodificar";
			addActionError(mensajeGEneral);
		}
		
		//cargar la interfaz
		cargaInterfaz();
		
		return SUCCESS;
	}

//	GETTER Y SETTERS
	public List<EdgarDTO> getListaEdgar() {
		return listaEdgar;
	}
	
	public void setListaEdgar(List<EdgarDTO> listaEdgar) {
		this.listaEdgar = listaEdgar;
	}









	public EdgarDTO getEdgarDTO() {
		return edgarDTO;
	}









	public void setEdgarDTO(EdgarDTO edgarDTO) {
		this.edgarDTO = edgarDTO;
	}









	public String getMensajeGEneral() {
		return mensajeGEneral;
	}









	public void setMensajeGEneral(String mensajeGEneral) {
		this.mensajeGEneral = mensajeGEneral;
	}




	public EdgarDTO getEdgarDTOModificar() {
		return edgarDTOModificar;
	}




	public void setEdgarDTOModificar(EdgarDTO edgarDTOModificar) {
		this.edgarDTOModificar = edgarDTOModificar;
	}




	public EdgarDTO getEdgarDTOEliminar() {
		return edgarDTOEliminar;
	}




	public void setEdgarDTOEliminar(EdgarDTO edgarDTOEliminar) {
		this.edgarDTOEliminar = edgarDTOEliminar;
	}




	public EdgarDTO getEdgarDTOInsertar() {
		return edgarDTOInsertar;
	}




	public void setEdgarDTOInsertar(EdgarDTO edgarDTOInsertar) {
		this.edgarDTOInsertar = edgarDTOInsertar;
	}




	public int getCantidadFilas() {
		return cantidadFilas;
	}




	public void setCantidadFilas(int cantidadFilas) {
		this.cantidadFilas = cantidadFilas;
	}




	public int getPaginaMostrar() {
		return paginaMostrar;
	}




	public void setPaginaMostrar(int paginaMostrar) {
		this.paginaMostrar = paginaMostrar;
	}




	public int getCantidadPaginas() {
		return cantidadPaginas;
	}




	public void setCantidadPaginas(int cantidadPaginas) {
		this.cantidadPaginas = cantidadPaginas;
	}
	
	
	
	
}
